{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Javaドキュメント\n",
    "\n",
    "## [Javaドキュメントで API 仕様を調べる](http://sunjava.seesaa.net/category/3530558-1.html)\n",
    "\n",
    "* Javaドキュメント\n",
    "    * API仕様はプログラミング時にクラス、フィールド、メソッドなどを調べるために欠かせない\n",
    "* JavaのAPI(Application Program Interface)\n",
    "    * プログラムを作成するためのクラスの集まり\n",
    "        * クラスはグループごとにパッケージにまとめられている\n",
    "    * APIの種類\n",
    "        * コアAPI (標準API, 標準クラスライブラリ)\n",
    "            * 標準で提供されている\n",
    "        * 拡張API\n",
    "            * 別途供給される\n",
    "    * [Java SE API & ドキュメント](http://www.oracle.com/technetwork/jp/java/javase/documentation/api-jsp-316041-ja.html)\n",
    "* Java APIのソースコードの場所\n",
    "    * 例\n",
    "        * ` /usr/lib/jvm/java-8-openjdk-amd64/src.zip`\n",
    "        * ただ、何故か削除されていた\n",
    "* Java API、クラスライブラリ、パッケージの関係\n",
    "    * API、クラスライブラリ\n",
    "        * 一般的にはOSが提供する機能をアプリケーションから呼び出せるようにするソフトウェアの事\n",
    "        * Javaは仮想コンピュータにOSのAPIにあたる機能を持たせている\n",
    "            * JavaはOSのAPIに直接アクセスせず、クラスライブラリを経由する\n",
    "                * クラスライブラリはクラスファイルをライブラリとしてまとめたもの\n",
    "            * <font color=\"red\">JavaでいうAPIはクラスライブラリの事</font>\n",
    "    * パッケージ\n",
    "        * クラスをグループごとにまとめ、整理しやすくする機能\n",
    "            * 実際はクラスをフォルダ毎にまとめて管理する\n",
    "            * <font color=\"red\">パッケージ名はフォルダの階層構造と一致させる決まりがある</font>\n",
    "    * 場所\n",
    "        * 例\n",
    "            * `/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar`\n",
    "                * jarファイルはzipファイルなので、リネームしてzip解凍すると展開できる\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
